package com.dc.toolkit.hutool.io;

import cn.hutool.core.io.FileUtil;
import org.junit.Test;

import java.io.File;
import java.util.Arrays;
import java.util.List;

/**
 * Description: Hutool FileUtil Demo
 * @author: gdc
 * @date: 2021/10/12
 * @version 1.0
 */
public class FileUtilTest {

    /**
     * 测试       是否为Windows环境
     */
    @Test
    public void test_isWindows(){
        boolean isWindows = FileUtil.isWindows();
        System.out.println("当前环境是否为Windows环境：" + isWindows);
    }

    /**
     * 测试       列出目录文件
     */
    @Test
    public void test_ls(){
        File[] files = FileUtil.ls("D:");
        Arrays.asList(files).forEach(file -> System.out.println(file.getAbsolutePath()));
    }

    /**
     * 测试       文件是否为空
     */
    @Test
    public void test_isEmpty(){
        System.out.println("测试文件为空：" + FileUtil.isEmpty(null));
        System.out.println("测试文件为空：" + FileUtil.isEmpty(FileUtil.file("Test.java")));
    }

    /**
     * 测试       文件是否不为空
     */
    @Test
    public void test_isNotEmpty(){
        System.out.println("测试文件不为空：" + FileUtil.isNotEmpty(null));
        System.out.println("测试文件不为空：" + FileUtil.isNotEmpty(FileUtil.file("Test.java")));
    }

    /**
     * 测试       目录是否为空
     */
    @Test
    public void test_isDirEmpty(){
        System.out.println("测试文件不为空：" + FileUtil.isDirEmpty(FileUtil.file("../")));
    }

    /**
     * 测试       递归遍历目录以及子目录中的所有文件
     */
    @Test
    public void test_loopFiles(){
        List<File> files = FileUtil.loopFiles("c:");
        files.forEach(file -> System.out.println(file.getAbsolutePath()));
    }

    /**
     * 测试       获取指定目录所有文件列表
     */
    @Test
    public void test_listFileNames(){
        List<String> fileNames = FileUtil.listFileNames("c:");
        fileNames.forEach(System.out::println);
    }

    /**
     * 测试       创建文件
     */
    @Test
    public void test_newFile(){
        File file = FileUtil.newFile("Test2.java");
        System.out.println("创建新的文件：" + file);
    }

    /**
     * 测试       创建文件
     */
    @Test
    public void test_file(){
        File file = FileUtil.file("Test3.java");
        System.out.println("创建File对象：" + file);

        File file2 = FileUtil.file("../", "Test3.java");
        System.out.println("创建File对象：" + file2);
    }

    /**
     * 测试       获取系统临时文件目录路径
     */
    @Test
    public void test_getTmpDirPath(){
        System.out.println("获取临时文件路径：" + FileUtil.getTmpDirPath());
    }

    /**
     * 测试       获取系统临时文件目录
     */
    @Test
    public void test_getTmpDir(){
        System.out.println("获取临时文件目录：" + FileUtil.getTmpDir());
    }

}
